package com.fjh.springboot_01.utils;

import com.fjh.springboot_01.pojo.payment.PaymentOrder;
import com.fjh.springboot_01.pojo.tutor.TutoringSchedule;

/**
 * 支付帮助工具类，用于处理支付状态和课程状态的关系
 */
public class PaymentHelper {
    
    /**
     * 检查课程是否需要支付
     * 规则：
     * 1. 已确认（状态1）或已完成（状态2）的课程需要支付
     * 2. 已取消（状态3）的课程不需要支付
     * 3. 已支付的课程不需要再次支付
     * 
     * @param schedule 课程安排
     * @param paymentOrder 支付订单
     * @return 是否需要支付
     */
    public static boolean needsPayment(TutoringSchedule schedule, PaymentOrder paymentOrder) {
        if (schedule == null) {
            return false;
        }
        
        // 已取消的课程不需要支付
        if (schedule.getStatus() == 3) {
            return false;
        }
        
        // 待确认的课程不需要支付
        if (schedule.getStatus() == 0) {
            return false;
        }
        
        // 检查是否已支付
        boolean isPaid = paymentOrder != null && paymentOrder.getStatus() == 1;
        if (isPaid) {
            return false;
        }
        
        // 已确认或已完成的课程需要支付
        return schedule.getStatus() == 1 || schedule.getStatus() == 2;
    }
    
    /**
     * 获取支付状态的描述
     * @param schedule 课程安排
     * @param paymentOrder 支付订单
     * @return 支付状态描述
     */
    public static String getPaymentStatusDescription(TutoringSchedule schedule, PaymentOrder paymentOrder) {
        if (schedule == null) {
            return "未知";
        }
        
        boolean isPaid = paymentOrder != null && paymentOrder.getStatus() == 1;
        
        if (schedule.getStatus() == 0) {
            return "待确认";
        } else if (schedule.getStatus() == 3) {
            return "已取消";
        } else if (isPaid) {
            return "已支付";
        } else {
            return "待支付";
        }
    }
} 